Tezroq veb-sahifa yuklanishi va butun dunyo bo'ylab foydalanuvchi tajribasini yaxshilash uchun frontend-da tartibsiz striming usullarini o'rganing. Ketma-ket bo'lmagan yuklash strategiyalarini joriy qilishni o'rganing.
Frontend-da tartibsiz striming: Global miqyosda veb-ishlash samaradorligini optimallashtirish
Bugungi tezkor raqamli dunyoda foydalanuvchilar veb-saytlarning tez yuklanishini va uzluksiz tajribani taqdim etishini kutishadi. An'anaviy veb-ishlab chiqish yondashuvlari ko'pincha resurslarni ketma-ket yuklaydi, bu esa, ayniqsa, internet aloqasi sekin bo'lgan yoki veb-saytlarga geografik jihatdan uzoq joylardan kirayotgan foydalanuvchilar uchun sezilarli kechikishlarga olib kelishi mumkin. Frontend-da tartibsiz striming resurslarni ketma-ket bo'lmagan tarzda yuklash imkonini berib, bu muammoga kuchli yechim taklif qiladi va butun dunyo bo'ylab seziladigan samaradorlik va foydalanuvchi qoniqishini keskin oshiradi.
An'anaviy ketma-ket yuklashni tushunish
Tartibsiz strimingga sho'ng'ishdan oldin, an'anaviy ketma-ket yuklashning cheklovlarini tushunish juda muhim. Odatdagi veb-sahifada brauzer HTML hujjatini yuqoridan pastgacha tahlil qiladi. U CSS uslublar jadvallari, JavaScript fayllari va rasmlar kabi resurslarga duch kelganda, ularni HTML-da paydo bo'lish tartibida so'raydi va yuklaydi. Bu "sharshara" effektini yaratishi mumkin, bunda brauzer keyingisiga o'tishdan oldin bir resursning yuklanishini kutadi. Masalan:
<!DOCTYPE html>
<html>
<head>
<title>Ketma-ket yuklash misoli</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>Xush kelibsiz!</h1>
<img src="large_image.jpg" alt="Katta rasm">
<script src="app.js"></script>
</body>
</html>
Ushbu misolda brauzer avval style.css ni, so'ngra large_image.jpg ni va nihoyat app.js ni yuklaydi. Agar large_image.jpg katta fayl bo'lsa, u app.js ning yuklanishini bloklaydi, bu esa muhim JavaScript kodining bajarilishini kechiktirishi va umumiy foydalanuvchi tajribasiga salbiy ta'sir ko'rsatishi mumkin.
Frontend-da tartibsiz striming nima?
Frontend-da tartibsiz striming (shuningdek, ketma-ket bo'lmagan yuklash deb ham ataladi) bu brauzerga resurslarni HTML hujjatida paydo bo'lish tartibidan farqli ravishda yuklash imkonini beruvchi usuldir. Bu ishlab chiquvchilarga sahifaning dastlabki renderlanishi uchun zarur bo'lgan muhim resurslarning yuklanishini, ularning HTML-dagi o'rnidan qat'i nazar, birinchi o'ringa qo'yish imkonini beradi. Yuklash ketma-ketligini strategik jihatdan o'zgartirish orqali biz foydalanuvchining sezadigan samaradorligini optimallashtirishimiz va sahifaning interaktiv bo'lishiga ketadigan vaqtni qisqartirishimiz mumkin.
Tartibsiz strimingning asosiy printsipi - foydalanuvchiga eng muhim kontent va funksionallikni imkon qadar tezroq yetkazib berish, kamroq ahamiyatga ega bo'lgan resurslarning yuklanishini esa keyinga qoldirishdir. Bu, ayniqsa, sekin tarmoq ulanishlarida tezroq va sezgirroq foydalanuvchi tajribasini ta'minlaydi.
Tartibsiz strimingning afzalliklari
Tartibsiz strimingni joriy etish bir nechta muhim afzalliklarni taqdim etadi:
- Seziladigan samaradorlikni oshirish: Foydalanuvchilar barcha resurslar to'liq yuklanmagan bo'lsa ham, sahifani tezroq ko'radilar va u bilan o'zaro aloqada bo'ladilar. Bu jalb qilish va saqlab qolish uchun juda muhim. Masalan, Hindistondagi elektron tijorat sayti tartibsiz strimingdan foydalanib, dastlabki yuklash vaqtini sezilarli darajada yaxshilashi mumkin, bu esa ko'pincha ishonchsiz ulanishlarga ega mobil qurilmalarda konversiya darajasini oshirishga olib keladi.
- Birinchi tasvirga qadar vaqtni (TTFP) qisqartirish: Muhim CSS va JavaScript-ni birinchi o'ringa qo'yish orqali brauzer sahifaning dastlabki tarkibini tezroq renderlashi mumkin, bu esa foydalanuvchilarga darhol vizual fikr-mulohaza beradi. TTFP veb-ishlash samaradorligini o'lchash uchun asosiy ko'rsatkichdir.
- Interaktivlikka qadar vaqtni (TTI) tezlashtirish: Muhim JavaScript kodini erta yuklash va bajarish orqali sahifa tezroq interaktiv bo'ladi, bu esa foydalanuvchilarga kechikishsiz tarkib bilan o'zaro aloqada bo'lishni boshlash imkonini beradi. TTI yana bir muhim samaradorlik ko'rsatkichidir.
- Yaxshiroq foydalanuvchi tajribasi (UX): Tezroq va sezgirroq veb-sayt umumiy foydalanuvchi tajribasining yaxshilanishiga olib keladi, bu esa foydalanuvchi qoniqishi va jalb etilishini oshiradi. Janubiy Amerikadagi foydalanuvchilarga mo'ljallangan yangiliklar veb-saytini ko'rib chiqing. Tartibsiz striming bilan ta'minlangan tezroq yuklash tajribasi, ayniqsa, turli tarmoq tezligiga ega mobil qurilmalar orqali saytga kiradigan o'quvchilar uchun foydalanuvchi jalb etilishini kuchaytiradi va rad etish darajasini minimallashtiradi.
- SEO-ni yaxshilash: Google kabi qidiruv tizimlari sahifa yuklanish tezligini reyting omili sifatida hisobga oladi. Veb-saytingizni tartibsiz striming bilan optimallashtirish qidiruv tizimidagi reytingingizga ijobiy ta'sir ko'rsatishi mumkin.
- Resurslardan optimallashtirilgan foydalanish: Muhim resurslarni birinchi o'ringa qo'yish orqali siz brauzerning o'z resurslarini eng muhim vazifalarga qaratishini ta'minlaysiz, bu esa resurslardan samaraliroq foydalanishga olib keladi.
Tartibsiz strimingni joriy etish usullari
Frontend ilovalaringizda tartibsiz strimingni joriy qilish uchun bir nechta usullarni qo'llash mumkin:
1. Muhim CSS-ni birinchi o'ringa qo'yish
Muhim CSS veb-sahifaning "above-the-fold" (ekranning birinchi ko'rinadigan qismi) kontentini renderlash uchun zarur bo'lgan CSS qoidalariga ishora qiladi. Muhim CSS-ni to'g'ridan-to'g'ri HTML hujjatining <head> qismiga joylashtirish orqali siz brauzerning tashqi uslublar jadvalini yuklab olish zaruratini yo'q qilasiz, bu esa unga sahifaning dastlabki kontentini tezroq renderlash imkonini beradi.
Misol:
<!DOCTYPE html>
<html>
<head>
<title>Muhim CSS misoli</title>
<style>
/* Muhim CSS - Ekranning birinchi ko'rinadigan qismi uchun uslublar */
body { font-family: sans-serif; }
h1 { color: #333; }
</style>
<link rel="preload" href="style.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="style.css"></noscript>
</head>
<body>
<h1>Xush kelibsiz!</h1>
<p>Bu ba'zi namuna kontent.</p>
</body>
</html>
Ushbu misolda body va h1 elementlariga uslub berish uchun muhim CSS <style> tegi ichida joylashtirilgan. Qolgan CSS esa <link rel="preload"> yordamida asinxron tarzda yuklanadi.
2. JavaScript uchun async va defer atributlari
async va defer atributlari JavaScript fayllarining qanday yuklanishi va bajarilishini nazorat qilish imkonini beradi. async atributi brauzerga skriptni HTML tahlili bilan parallel ravishda yuklab olishga imkon beradi va skript yuklab olinishi bilanoq bajariladi. defer atributi ham brauzerga skriptni parallel ravishda yuklab olishga imkon beradi, ammo skript HTML tahlili tugagandan so'ng va HTML-da paydo bo'lish tartibida bajariladi.
Misol:
<!DOCTYPE html>
<html>
<head>
<title>Async va Defer misoli</title>
</head>
<body>
<h1>Xush kelibsiz!</h1>
<script src="analytics.js" async></script>
<script src="app.js" defer></script>
</body>
</html>
Ushbu misolda analytics.js asinxron tarzda yuklanadi, ya'ni u HTML tahlili bilan parallel ravishda yuklab olinadi va yuklab olinishi bilanoq bajariladi. app.js esa kechiktirilgan, ya'ni u parallel ravishda yuklab olinadi, lekin HTML tahlili tugagandan so'ng bajariladi, bu esa skript ishga tushishidan oldin DOM-ning to'liq yuklanganligini ta'minlaydi. Mustaqil va DOM-ga bog'liq bo'lmagan skriptlar uchun async-dan, DOM-ga kirishni talab qiladigan yoki boshqa skriptlarga bog'liq bo'lgan skriptlar uchun defer-dan foydalaning.
3. Preload va Prefetch ko'rsatmalari
<link rel="preload"> va <link rel="prefetch"> ko'rsatmalari brauzerga tez orada kerak bo'ladigan yoki kelajakda kerak bo'lishi mumkin bo'lgan resurslar haqida yo'riqnoma beradi. preload brauzerga resursni imkon qadar tezroq yuklab olishni aytadi, prefetch esa brauzerga resursni bo'sh vaqtida yuklab olishni aytadi, bu kelajakdagi navigatsiya uchun kerak bo'lishini kutadi. Bu ko'rsatmalar brauzerga resurslarni proaktiv ravishda yuklash imkonini beradi, kechikishni kamaytiradi va samaradorlikni oshiradi.
Misol:
<!DOCTYPE html>
<html>
<head>
<title>Preload va Prefetch misoli</title>
<link rel="preload" href="style.css" as="style">
<link rel="prefetch" href="next_page.html">
</head>
<body>
<h1>Xush kelibsiz!</h1>
<a href="next_page.html">Keyingi sahifa</a>
</body>
</html>
Ushbu misolda style.css oldindan yuklangan, bu uning imkon qadar tezroq yuklab olinishi kerak bo'lgan muhim resurs ekanligini ko'rsatadi. next_page.html esa oldindan olinadi, bu kelajakda kerak bo'lishi mumkinligini bildiradi va brauzerga uni bo'sh vaqtida yuklab olishga imkon beradi. Oldindan yuklanayotgan resurs turini ko'rsatish uchun to'g'ri as atributidan foydalanganingizga ishonch hosil qiling.
4. Kodni bo'lish va kechiktirilgan yuklash (Lazy Loading)
Kodni bo'lish sizning JavaScript kodingizni talab bo'yicha yuklanishi mumkin bo'lgan kichikroq qismlarga bo'lishni o'z ichiga oladi. Kechiktirilgan yuklash esa resurslarni faqat kerak bo'lganda yuklashni o'z ichiga oladi, masalan, ekranning ko'rinmaydigan qismidagi rasmlar. Ushbu usullar ilovangizning dastlabki yuklanish vaqtini sezilarli darajada qisqartirishi va uning umumiy samaradorligini oshirishi mumkin.
Misol (JavaScript-da dinamik importlardan foydalanish):
// app.js
async function loadComponent() {
const { default: MyComponent } = await import('./my-component.js');
const component = new MyComponent();
document.getElementById('component-container').appendChild(component.render());
}
loadComponent();
Ushbu misolda my-component.js faqat loadComponent funksiyasi chaqirilganda dinamik ravishda yuklanadi. Bu sizga komponentlarni talab bo'yicha yuklash imkonini beradi va ilovangizning dastlabki yuklanish vaqtini qisqartiradi.
5. HTTP/2 Server Push
HTTP/2 Server Push serverga resurslarni klient tomonidan aniq so'ralmasdan oldin proaktiv ravishda yuborish imkonini beradi. Bu muhim CSS, JavaScript va rasmlarni brauzerga yuborish uchun ishlatilishi mumkin, bu esa aylanishlar sonini kamaytiradi va samaradorlikni oshiradi. Ushbu usul server tomonida sozlashni talab qiladi.
Misol (Server konfiguratsiyasi - Apache):
<Files "index.html">
Header push "/style.css; rel=preload; as=style"
Header push "/app.js; rel=preload; as=script"
</Files>
Ushbu konfiguratsiya serverga index.html so'ralganda style.css va app.js ni yuborishni aytadi.
Tartibsiz striming ta'sirini o'lchash
Tartibsiz strimingni joriy etishning ta'sirini o'lchash, uning haqiqatan ham samaradorlikni oshirayotganiga ishonch hosil qilish uchun juda muhimdir. Samaradorlikni baholash uchun bir nechta vositalar va ko'rsatkichlardan foydalanish mumkin:
- WebPageTest: Veb-saytingizning ishlashini turli joylardan va turli ulanish tezligida sinab ko'rish imkonini beruvchi bepul onlayn vosita. WebPageTest TTFB, TTFP va TTI kabi turli samaradorlik ko'rsatkichlari bo'yicha batafsil hisobotlarni taqdim etadi.
- Google PageSpeed Insights: Veb-saytingizning ishlashini tahlil qiladigan va yaxshilash bo'yicha tavsiyalar beradigan vosita. PageSpeed Insights shuningdek veb-saytingizning ishlashiga asoslangan ball ham beradi.
- Lighthouse: Veb-sahifalar sifatini yaxshilash uchun ochiq manbali, avtomatlashtirilgan vosita. Uni Chrome DevTools-da, buyruqlar satridan yoki Node moduli sifatida ishga tushirishingiz mumkin. Lighthouse samaradorlik, mavjudlik, progressiv veb-ilova, SEO va boshqalarni tekshiradi.
- Haqiqiy foydalanuvchi monitoringi (RUM): RUM haqiqiy foydalanuvchilar veb-saytingiz bilan o'zaro aloqada bo'lganda ishlash ma'lumotlarini to'plashni o'z ichiga oladi. Bu haqiqiy foydalanuvchi tajribasi haqida qimmatli ma'lumotlar beradi. New Relic, Datadog va Google Analytics kabi vositalar RUM imkoniyatlarini taklif qiladi.
Kuzatilishi kerak bo'lgan asosiy ko'rsatkichlar:
- Birinchi baytgacha bo'lgan vaqt (TTFB): Brauzer serverdan ma'lumotlarning birinchi baytini qabul qilishiga ketgan vaqt.
- Birinchi tasvirga qadar vaqt (TTFP): Brauzer ekranda birinchi pikselni renderlashiga ketgan vaqt.
- Birinchi mazmunli tasvir (FCP): Brauzer ekranda kontentning birinchi qismini renderlashiga ketgan vaqt.
- Eng katta mazmunli tasvir (LCP): Brauzer ekranda eng katta kontent elementini renderlashiga ketgan vaqt.
- Interaktivlikka qadar vaqt (TTI): Sahifaning to'liq interaktiv bo'lishiga ketgan vaqt.
- Tezlik indeksi (Speed Index): Sahifa tarkibining vizual tarzda qanchalik tez to'ldirilishini o'lchaydigan ko'rsatkich.
Tartibsiz striming uchun global mulohazalar
Global auditoriya uchun tartibsiz strimingni joriy etishda quyidagi omillarni hisobga olish muhim:
- Turli xil tarmoq sharoitlari: Turli mintaqalardagi foydalanuvchilar juda farqli internet ulanish tezligi va ishonchliligiga ega bo'lishi mumkin. Optimallashtirish strategiyalaringizni ushbu o'zgarishlarni hisobga olgan holda moslashtiring. Masalan, cheklangan tarmoq o'tkazuvchanligiga ega mintaqalardagi foydalanuvchilar agressiv kodni bo'lish va kechiktirilgan yuklashdan ko'proq foyda ko'rishi mumkin, tezroq ulanishga ega foydalanuvchilar esa HTTP/2 Server Push-dan ko'proq foyda olishlari mumkin.
- Geografik joylashuv: Serverlaringiz va foydalanuvchilaringiz orasidagi masofa kechikishga sezilarli ta'sir ko'rsatishi mumkin. Veb-saytingiz resurslarini dunyoning bir nechta joylarida keshlaydigan Kontent Yetkazib Berish Tarmog'idan (CDN) foydalaning, bu esa turli mintaqalardagi foydalanuvchilar uchun kechikishni kamaytiradi. Mashhur CDN provayderlari qatoriga Cloudflare, Akamai va Amazon CloudFront kiradi.
- Qurilmalar xilma-xilligi: Foydalanuvchilar veb-saytlarga yuqori darajadagi kompyuterlardan tortib, past darajadagi mobil telefonlargacha bo'lgan keng turdagi qurilmalardan kirishadi. Veb-saytingizni turli ekran o'lchamlari va qurilma imkoniyatlari uchun optimallashtiring. Sezgir dizayn usullaridan foydalaning va foydalanuvchi qurilmasiga qarab turli o'lchamdagi rasmlarni taqdim etish uchun adaptiv rasmlardan foydalanishni ko'rib chiqing.
- Madaniy farqlar: Veb-saytingizni madaniy sezgirlikni hisobga olgan holda loyihalashtiring. Til, tipografiya va tasvirlar kabi omillarni ko'rib chiqing. Veb-saytingiz nogironligi bo'lgan foydalanuvchilar uchun ham qulay ekanligiga ishonch hosil qiling.
- Normativ-huquqiy muvofiqlik: Turli mamlakatlardagi ma'lumotlar maxfiyligi qoidalaridan xabardor bo'ling, masalan, Yevropadagi GDPR va Kaliforniyadagi CCPA. Veb-saytingiz barcha amaldagi qoidalarga muvofiqligiga ishonch hosil qiling.
Haqiqiy dunyo misollari va keys-tadqiqotlar
Ko'pgina kompaniyalar o'z veb-saytlarining ishlashini yaxshilash uchun tartibsiz strimingni muvaffaqiyatli joriy etishgan. Mana bir nechta misollar:
- Google: Google o'zining qidiruv natijalari sahifalarining ishlashini optimallashtirish uchun turli usullardan foydalanadi, jumladan, muhim CSS, kodni bo'lish va kechiktirilgan yuklash. Bu optimallashtirishlar foydalanuvchilar Google Qidiruvidan global miqyosda kutadigan tezlik va sezgirlikka hissa qo'shadi.
- Facebook: Facebook dunyo bo'ylab milliardlab foydalanuvchilariga tez va qiziqarli tajriba taqdim etish uchun kodni bo'lish va oldindan yuklash kabi bir qator samaradorlikni optimallashtirish strategiyalarini qo'llaydi.
- The Guardian: Buyuk Britaniyaning yetakchi gazetasi bo'lgan The Guardian o'z sahifasining yuklanish vaqtini 50% ga qisqartirish uchun muhim CSS va boshqa ishlash optimallashtirishlarini joriy etdi. Bu foydalanuvchi jalb etilishini yaxshiladi va rad etish darajasini pasaytirdi.
- Alibaba: Global elektron tijorat giganti sifatida Alibaba butun dunyo bo'ylab o'z mijozlariga silliq va samarali xarid qilish tajribasini ta'minlash uchun ishlashni optimallashtirish usullariga qattiq tayanadi. Ular o'z platformasining ulkan trafikini va murakkab funksiyalarini boshqarish uchun CDN, kodni bo'lish va boshqa strategiyalar kombinatsiyasidan foydalanadilar.
Umumiy xatolar va ulardan qanday qochish kerak
Tartibsiz striming veb-sayt ishlashini sezilarli darajada yaxshilashi mumkin bo'lsa-da, potentsial xatolardan xabardor bo'lish va ulardan qochish uchun choralar ko'rish muhim:
- Noto'g'ri ustuvorlik berish: Noto'g'ri resurslarga ustuvorlik berish aslida ishlashni yomonlashtirishi mumkin. Sahifaning dastlabki renderlanishi uchun eng muhim bo'lgan resurslarni aniqlash uchun veb-saytingizning muhim renderlash yo'lini diqqat bilan tahlil qiling.
- Haddan tashqari optimallashtirish: Haddan tashqari optimallashtirish kamayib boruvchi natijalarga va ortib borayotgan murakkablikka olib kelishi mumkin. Ishlashga eng katta ta'sir ko'rsatadigan optimallashtirishlarga e'tibor qarating.
- Brauzer moslashuvi muammolari: Ba'zi tartibsiz striming usullari barcha brauzerlar tomonidan qo'llab-quvvatlanmasligi mumkin. Moslashuvni ta'minlash uchun veb-saytingizni turli brauzerlar va qurilmalarda sinchkovlik bilan sinab ko'ring. Eski brauzerlar uchun zaxira variantini taqdim etish uchun progressiv yaxshilanishdan foydalaning.
- Keshni bekor qilish: Keshlangan resurslarni bekor qilish qiyin bo'lishi mumkin, ayniqsa HTTP/2 Server Push-dan foydalanganda. Foydalanuvchilar har doim veb-saytingizning eng so'nggi versiyasini olishlarini ta'minlash uchun mustahkam keshni bekor qilish strategiyasini joriy eting.
- Murakkablik: Tartibsiz strimingni joriy etish sizning frontend ishlab chiqish ish jarayoningizga murakkablik qo'shishi mumkin. Jarayonni soddalashtirish uchun tuzish vositalari va avtomatlashtirishdan foydalaning.
Frontend ishlashini optimallashtirish kelajagi
Frontend ishlashini optimallashtirish doimiy rivojlanayotgan soha bo'lib, doimo yangi usullar va texnologiyalar paydo bo'lmoqda. Frontend ishlashini optimallashtirish kelajagini shakllantirayotgan ba'zi tendentsiyalar quyidagilardan iborat:
- HTTP/3: HTTP/3 - bu yangi transport protokoli bo'lgan QUIC ustiga qurilgan HTTP protokolining keyingi avlodidir. HTTP/3 kechikishni kamaytirish va ulanish ishonchliligini yaxshilash orqali veb-ishlash samaradorligini yanada oshirishni va'da qiladi.
- WebAssembly (Wasm): WebAssembly stekka asoslangan virtual mashina uchun ikkilik ko'rsatmalar formatidir. Wasm C++ va Rust kabi tillarda yozilgan kodni brauzerda deyarli ona tilidek tezlikda ishga tushirish imkonini beradi. Bu hisoblash jihatdan intensiv vazifalarning ishlashini yaxshilash uchun ishlatilishi mumkin.
- Edge Computing: Edge computing ma'lumotlarni foydalanuvchiga yaqinroq joyda qayta ishlashni, kechikishni kamaytirishni va ishlashni yaxshilashni o'z ichiga oladi. CDN-lar tobora ko'proq edge computing imkoniyatlarini taklif qilmoqda, bu esa ishlab chiquvchilarga kodni tarmoqning chekkasida ishga tushirish imkonini beradi.
- Sun'iy intellektga asoslangan optimallashtirish: Sun'iy intellekt (SI) frontend ishlashining turli jihatlarini avtomatlashtirish va optimallashtirish uchun ishlatilmoqda, masalan, tasvirlarni optimallashtirish, kodni bo'lish va resurslarga ustuvorlik berish.
Xulosa
Frontend-da tartibsiz striming veb-ishlash samaradorligini optimallashtirish va foydalanuvchi tajribasini yaxshilash uchun kuchli usuldir. Muhim resurslarga ustuvorlik berish va ularni ketma-ket bo'lmagan tarzda yuklash orqali siz sahifa yuklanish vaqtini sezilarli darajada qisqartirishingiz va veb-saytingizni yanada sezgir qilishingiz mumkin. Tartibsiz strimingni joriy etishda foydalanuvchilaringizning o'ziga xos ehtiyojlarini va veb-saytingizning xususiyatlarini hisobga olish muhimdir. Veb-saytingizning ishlashini diqqat bilan tahlil qilib va joriy etishni iterativ ravishda optimallashtirib, siz foydalanuvchining joylashuvi yoki qurilmasidan qat'i nazar, foydalanuvchi tajribasi va jalb etilishida sezilarli yaxshilanishlarga erishishingiz mumkin. Ushbu strategiyalarni o'zlashtirib va veb-saytingizning ishlashini doimiy ravishda kuzatib borib, siz butun dunyo bo'ylab foydalanuvchilaringizga tez va qiziqarli tajriba taqdim etayotganingizga ishonch hosil qilishingiz mumkin.